domain abstraction